名称:CanOpen读SDO功能

符号:CANOPEN_SDO_READ

说明:

    此功能块是CANOPEN主从站用来实现读SDO功能的。

图片:

参数:

参数 声明 类型 描述
NODEID Input USINT
读的SDO的目的站的NodeID
MAININDEX Input UINT
对象字典的主索引
SUBINDEX Input USINT
对象字典的子索引
MAXLENGTH Input USINT
可以读取的数的最大长度
EXECUTE Input BOOL
触发执行读SDO动作
TIMEOUT Input UDINT
超时时间
DATA Input REF_TO BYTE
读取到的数据存储数据指针
ACTUALLEN Output USINT
读取到的数据的长度
DONE Output BOOL
功能块是否执行完成
BUSY Output BOOL
功能块现在是否正在执行
ERROR Output BOOL
功能块是否执行错误
ERRORID Output DINT
功能块执行的错误码

示例:

LD:

ST:



解释:

     NODEID表示要读SDO到NodeID为1的CANopen设备;
     mainIndex为0x2000表示要读的数据字典的主索引为0x2000;
     SUBINDEX为1表示要读的数据字典的子索引为1;
     MAXLENGTH为4表示要读的数据的最大长度为4个字节;
     EXECUTE为TRUE,如果上一次调用此功能块对象时,EXECUTE为FALSE,则此次为上升沿,将触发写SDO;
     TIMEOUT为500表示写SDO的超时时间为500ms;
     DATA为ucData,表示读取到的数据存储在数组ucData中;
     ActualLenOut为实际读取到的数据长度;
     DoneOut如果为TRUE,则表示功能块执行完成;
     BusyOut如果为TRUE,则表示当前功能块正在执行;
     ErrorOu如果为TURE,则表示功能块存在错误,没有完成SOD的写操作,错误码为ErrorID。